using System;
using UnityEngine;

namespace GGPhysics
{
	[Serializable]
	public class Shape
	{
		public bool isTrigger;

		public float mass = 1f;

		[NonSerialized]
		public bool isActive = true;

		public virtual float SilhouetteArea(Vector3 viewDirection)
		{
			return 0f;
		}

		public virtual float MomentOfInertiaWithoutMass()
		{
			return 0f;
		}

		public virtual float MomentOfInertia()
		{
			return MomentOfInertiaWithoutMass() * mass;
		}

		public virtual float GetDistanceToSurface(Vector3 hitPoint)
		{
			return 0f;
		}

		public virtual CollisionDetection.AABBBounds GetBounds(PhysicsBody.Transform currentTransform, PhysicsBody.Transform nextTransform)
		{
			return default(CollisionDetection.AABBBounds);
		}
	}
}
